package com.ls.fw.mvc.struts.auth;
//package com.ls.fw.controller.auth;
//
//import java.util.Collection;
//
//import org.apache.shiro.SecurityUtils;
//import org.apache.shiro.authc.IncorrectCredentialsException;
//import org.apache.shiro.authc.LockedAccountException;
//import org.apache.shiro.authc.UnknownAccountException;
//import org.apache.shiro.session.Session;
//import org.apache.shiro.session.mgt.eis.SessionDAO;
//import org.apache.shiro.subject.Subject;
//import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Scope;
//import org.springframework.stereotype.Controller;
//
//import com.ls.fw.controller.base.BaseAction;
//import com.ls.fw.core.auth.constant.Constants;
//import com.ls.fw.core.auth.exception.DeleteAccountException;
//import com.ls.fw.core.auth.exception.InValidAccountException;
//import com.ls.fw.core.auth.exception.IncorrectCaptchaException;
//
///**
// * @author 李昇 2014年4月30日 下午9:48:00
// */
//@Controller(value="sessionAction")
//@Scope("prototype")
//public class SessionAction extends BaseAction {
//
//	/**
//	 * 
//	 */
//	private static final long serialVersionUID = 1L;
//	//@Autowired
//	private SessionDAO sessionDAO;
//
//	private String sessionId;
//	private String username;
//	private String password;
//	private String captcha;
//	private String rememberMe;
//	
//	@Autowired(required=true) 
//	public void setSessionDAO(SessionDAO sessionDAO){
//		this.sessionDAO = sessionDAO;
//	}
//	/**
//	 * 登陆
//	 * 
//	 * @author 李昇 2014年4月30日 下午9:49:50
//	 * @return
//	 * @throws Exception
//	 */
//	public String login() throws Exception {
//		System.out.println("username:"+username);
//		String exceptionClassName = (String)this.request.getAttribute(FormAuthenticationFilter.DEFAULT_ERROR_KEY_ATTRIBUTE_NAME);
//        System.out.println(exceptionClassName);
//		String error = null;
//        boolean ok = true;
//        if(exceptionClassName!=null){
//	        if(UnknownAccountException.class.getName().equals(exceptionClassName)) {
//	            error = "用户名或密码错误！";
//	        } else if(IncorrectCredentialsException.class.getName().equals(exceptionClassName)) {
//	            error = "用户名或密码错误！";
//	        } else if(DeleteAccountException.class.getName().equals(exceptionClassName)) {
//	            error = "该账号已被删除！" ;
//	        } else if(InValidAccountException.class.getName().equals(exceptionClassName)) {
//	            error = "该账号处于无效状态！";
//	        }else if(LockedAccountException.class.getName().equals(exceptionClassName)) {
//	            error = "该账号已被锁定！";
//	        }else if(IncorrectCaptchaException.class.getName().equals(exceptionClassName)) {
//	            error = "验证码错误！";
//	        }else{
//	            error = "其他错误：" + exceptionClassName;
//	        }
//	        if(this.request.getParameter("forceLogout") != null) {
//	        	this.putFail("您已经被管理员强制退出，请重新登录!");
//	        }
//	        ok = false;
//	        this.putFail(error);
//        }else{
//        	 if(this.request.getParameter("forceLogout") != null) {
//        		 ok = false;
//        		 this.putFail("您已经被管理员强制退出，请重新登录!");
//            }
//        }
//        Subject subject = SecurityUtils.getSubject();
//	  	if(!subject.isAuthenticated()){
//	  		ok = false;
//	  		error = "用户名或密码错误！";
//	  		this.putFail(error);
//	  	}
//        String result = SUCCESS;
//        if(ok){
//        	this.putSuccess("登陆成功！");
//        }else{
//        	result = LOGIN;
//        }
//        System.out.println(error);
//		return result;
//	}
//
//	/**
//	 * 退出
//	 * 
//	 * @author 李昇 2014年4月30日 下午9:49:59
//	 * @return
//	 * @throws Exception
//	 */
//	public String logout() throws Exception {
//		try {
//			this.clearSessionUser();
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		System.out.println("退出成功");
//		return SUCCESS;
//	}
//
//	/**
//	 * 当前用户列表
//	 */
//	//@RequiresPermissions("session:list")
//	public String list() throws Exception {
//		Collection<Session> sessions = sessionDAO.getActiveSessions();
//		this.put("sessions", sessions);
//		this.put("sessionCount", sessions.size());
//		return SUCCESS;
//	}
//
//	/**
//	 * 强制退出
//	 * 
//	 * @author 李昇 2014年4月30日 下午9:50:35
//	 * @return
//	 * @throws Exception
//	 */
//	//@RequiresPermissions("session:forceLogout")
//	public String forceLogout() throws Exception {
//		try {
//			Session session = sessionDAO.readSession(sessionId);
//			if (session != null) {
//				session.setAttribute(Constants.SESSION_FORCE_LOGOUT_KEY,
//						Boolean.TRUE);
//			}
//			this.putSuccess("强制退出成功！");
//		} catch (Exception e) {
//			e.printStackTrace();
//			this.putFail(e.getMessage());
//		}
//		return SUCCESS;
//	}
//
//	public String getSessionId() {
//		return sessionId;
//	}
//
//	public void setSessionId(String sessionId) {
//		this.sessionId = sessionId;
//	}
//
//	public String getUsername() {
//		return username;
//	}
//
//	public void setUsername(String username) {
//		this.username = username;
//	}
//
//	public String getPassword() {
//		return password;
//	}
//
//	public void setPassword(String password) {
//		this.password = password;
//	}
//
//	public String getCaptcha() {
//		return captcha;
//	}
//
//	public void setCaptcha(String captcha) {
//		this.captcha = captcha;
//	}
//
//	public String getRememberMe() {
//		return rememberMe;
//	}
//
//	public void setRememberMe(String rememberMe) {
//		this.rememberMe = rememberMe;
//	}
//}
